package
{
	import baidu.map.basetype.LngLat;
	import baidu.map.basetype.Size;
	import baidu.map.core.Map;
	import baidu.map.layer.Layer;
	import baidu.map.layer.RasterLayer;
	
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.MouseEvent;
	
	import util.LabelButton;
	
	/*
	 * Demo：通过undo、redo和reset改变map状态。
	 * 本例展示了Map撤销、重做和重置接口的使用方法。
	 */
	public class MapStateExample extends Sprite
	{
		public function MapStateExample()
		{
			super();
			
			// 舞台设置 
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.align = StageAlign.TOP_LEFT;
			
			// 创建一个大小为600*400的Map对象
			var map:Map = new Map(new Size(600, 400));
			addChild(map);
			// 初始化Map的中心点和显示级别
			map.centerAndZoom(new LngLat(116.404, 39.915), 12);
			// 添加底图
			var layer:Layer = new RasterLayer("BaiduMap", map);
			map.addLayer(layer);
			
			// undo按钮
			var undoBtn:LabelButton = new LabelButton("undo");
			addChild(undoBtn);
			undoBtn.x = 10;
			undoBtn.y = 405;
			undoBtn.addEventListener(MouseEvent.CLICK, function(evt:MouseEvent):void{
				map.undo();
			});
			
			// redo按钮
			var redoBtn:LabelButton = new LabelButton("redo");
			addChild(redoBtn);
			redoBtn.x = 60;
			redoBtn.y = 405;
			redoBtn.addEventListener(MouseEvent.CLICK, function(evt:MouseEvent):void{
				map.redo();
			});
			
			var resetBtn:LabelButton = new LabelButton("reset");
			addChild(resetBtn);
			resetBtn.x = 110;
			resetBtn.y = 405;
			resetBtn.addEventListener(MouseEvent.CLICK, function(evt:MouseEvent):void{
				map.reset();
			});
		}
	}
}